package org.nepu.scr.indexrate.vo.drillingrate.keydevice.wellcontrolsystem;

import lombok.Data;
import org.nepu.scr.indexrate.converter.drillingrate.keydevice.improvesystem.InputTerminalConverter;
import org.nepu.scr.indexrate.converter.drillingrate.keydevice.wellcontrolsystem.*;
import org.nepu.scr.indexrate.vo.drillingrate.keydevice.improvesystem.InputTerminal;

import javax.persistence.Column;
import javax.persistence.Convert;

@Data
public class WellControlDevice {

    //防喷器
    @Convert(converter = BopConverter.class)
    @Column(name = "bop")
    Bop bop;

    //防喷器控制装置
    @Convert(converter = BopControlConverter.class)
    @Column(name = "bop_control_device")
    BopControl bopControlDevice;

    //蓄能器
    @Convert(converter = BatteryConverter.class)
    @Column(name = "battery")
    Battery battery;

    //阻流压井管汇
    @Convert(converter = PressureRegulatorConverter.class)
    @Column(name = "pressure_regulator")
    PressureRegulator pressureRegulator;

    //液气分离器
    @Convert(converter = GasSeparatorConverter.class)
    @Column(name = "gas_separator")
    GasSeparator gasSeparator;

    //除气器
    @Convert(converter = VentFanConverter.class)
    @Column(name = "vent_fan")
    VentFan ventFan;

    //计量罐
    @Convert(converter = MeteringBucketConverter.class)
    @Column(name = "metering_bucket")
    MeteringBucket meteringBucket;

    //预测钻遇的最大地层压力（MPa）
    @Convert(converter = InputTerminalConverter.class)
    @Column(name = "maximum_formation_pressure")
    InputTerminal maximumFormationPressure;

    //防喷器组额定压力（MPa）
    @Convert(converter = InputTerminalConverter.class)
    @Column(name = "rated_pressure")
    InputTerminal ratedPressure;
}
